home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / gimp / 2.0 / help / en / gimp-scripting.html < prev    next >
Encoding:
Extensible Markup Language  |  2008-05-03  |  27.8 KB  |  620 lines

  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4.   <head>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6.     <title>Chapter¬†12.¬† Scripting</title>
  7.     <link rel="stylesheet" href="gimp-help-plain.css" type="text/css" />
  8.     <link rel="stylesheet" href="gimp-help-screen.css" type="text/css" />
  9.     <link rel="stylesheet" href="gimp-help-custom.css" type="text/css" />
  10.     <link rel="alternate stylesheet" href="gimp22.css" type="text/css" title="gimp22" />
  11.     <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
  12.     <link rel="start" href="index.html" title="GNU Image Manipulation Program" />
  13.     <link rel="up" href="pt02.html" title="Part¬†II.¬† How do I Become a GIMP Wizard?" />
  14.     <link rel="prev" href="using-customize-splashscreen.html" title="7.¬† Customize Splash-Screen" />
  15.     <link rel="next" href="gimp-concepts-script-fu.html" title="2.¬† Using Script-Fu Scripts" />
  16.   </head>
  17.   <body>
  18.     <div class="navheader">
  19.       <table width="100%" summary="Navigation header">
  20.         <tr>
  21.           <th colspan="3" align="center">Chapter¬†12.¬†
  22.         <span lang="en" xml:lang="en">Scripting</span>
  23.       </th>
  24.         </tr>
  25.         <tr>
  26.           <td width="20%" align="left"><a accesskey="p" href="using-customize-splashscreen.html"><img src="../images/prev.png" alt="Prev" /></a>¬†</td>
  27.           <th width="60%" align="center">Part¬†II.¬†
  28.       <span lang="en" xml:lang="en">
  29.         How do I Become a <acronym class="acronym">GIMP</acronym> Wizard?
  30.       </span>
  31.     </th>
  32.           <td width="20%" align="right">¬†<a accesskey="n" href="gimp-concepts-script-fu.html"><img src="../images/next.png" alt="Next" /></a></td>
  33.         </tr>
  34.       </table>
  35.       <hr />
  36.     </div>
  37.     <div class="chapter" lang="en" xml:lang="en">
  38.       <div class="titlepage">
  39.         <div>
  40.           <div>
  41.             <h2 class="title"><a id="gimp-scripting"></a>Chapter¬†12.¬†
  42.         <span lang="en" xml:lang="en">Scripting</span>
  43.       </h2>
  44.           </div>
  45.         </div>
  46.       </div>
  47.       <div class="toc">
  48.         <p>
  49.           <b>Table of Contents</b>
  50.         </p>
  51.         <dl>
  52.           <dt>
  53.             <span class="sect1">
  54.               <a href="gimp-scripting.html#gimp-concepts-plugins">1. 
  55.     <span lang="en" xml:lang="en">Plugins</span>
  56.   </a>
  57.             </span>
  58.           </dt>
  59.           <dd>
  60.             <dl>
  61.               <dt>
  62.                 <span class="sect2">
  63.                   <a href="gimp-scripting.html#id2614743">1.1. 
  64.       <span lang="en" xml:lang="en">Introduction</span>
  65.     </a>
  66.                 </span>
  67.               </dt>
  68.               <dt>
  69.                 <span class="sect2">
  70.                   <a href="gimp-scripting.html#id2614929">1.2. 
  71.       <span lang="en" xml:lang="en">Using Plugins</span>
  72.     </a>
  73.                 </span>
  74.               </dt>
  75.               <dt>
  76.                 <span class="sect2">
  77.                   <a href="gimp-scripting.html#gimp-plugins-install">1.3. 
  78.       <span lang="en" xml:lang="en">Installing New Plugins</span>
  79.     </a>
  80.                 </span>
  81.               </dt>
  82.               <dt>
  83.                 <span class="sect2">
  84.                   <a href="gimp-scripting.html#plugins-write">1.4. 
  85.       <span lang="en" xml:lang="en">Writing Plugins</span>
  86.     </a>
  87.                 </span>
  88.               </dt>
  89.             </dl>
  90.           </dd>
  91.           <dt>
  92.             <span class="sect1">
  93.               <a href="gimp-concepts-script-fu.html">2. 
  94.     <span lang="en" xml:lang="en">Using Script-Fu Scripts</span>
  95.   </a>
  96.             </span>
  97.           </dt>
  98.           <dd>
  99.             <dl>
  100.               <dt>
  101.                 <span class="sect2">
  102.                   <a href="gimp-concepts-script-fu.html#id2615470">2.1. 
  103.       <span lang="en" xml:lang="en">Script-Fu?</span>
  104.     </a>
  105.                 </span>
  106.               </dt>
  107.               <dt>
  108.                 <span class="sect2">
  109.                   <a href="install-script-fu.html">2.2. 
  110.       <span lang="en" xml:lang="en">Installing Script-Fus</span>
  111.     </a>
  112.                 </span>
  113.               </dt>
  114.               <dt>
  115.                 <span class="sect2">
  116.                   <a href="ch12s02s03.html">2.3. 
  117.       <span lang="en" xml:lang="en">Do's and Don'ts</span>
  118.     </a>
  119.                 </span>
  120.               </dt>
  121.               <dt>
  122.                 <span class="sect2">
  123.                   <a href="ch12s02s04.html">2.4. 
  124.       <span lang="en" xml:lang="en">Different Kinds Of Script-Fus</span>
  125.     </a>
  126.                 </span>
  127.               </dt>
  128.               <dt>
  129.                 <span class="sect2">
  130.                   <a href="standalone-script-fu.html">2.5. 
  131.       <span lang="en" xml:lang="en">Standalone Scripts</span>
  132.     </a>
  133.                 </span>
  134.               </dt>
  135.               <dt>
  136.                 <span class="sect2">
  137.                   <a href="ch12s02s06.html">2.6. 
  138.       <span lang="en" xml:lang="en">Image-Dependent Scripts</span>
  139.     </a>
  140.                 </span>
  141.               </dt>
  142.             </dl>
  143.           </dd>
  144.           <dt>
  145.             <span class="sect1">
  146.               <a href="gimp-using-script-fu-tutorial.html">3. 
  147.     <span lang="en" xml:lang="en">A Script-Fu Tutorial</span>
  148.   </a>
  149.             </span>
  150.           </dt>
  151.           <dd>
  152.             <dl>
  153.               <dt>
  154.                 <span class="sect2">
  155.                   <a href="gimp-using-script-fu-tutorial.html#gimp-using-script-fu-tutorial-scheme">3.1. 
  156.       <span lang="en" xml:lang="en">Getting Acquainted With Scheme</span>
  157.     </a>
  158.                 </span>
  159.               </dt>
  160.               <dt>
  161.                 <span class="sect2">
  162.                   <a href="gimp-using-script-fu-tutorial-identifier.html">3.2. 
  163.       <span lang="en" xml:lang="en">Variables And Functions</span>
  164.     </a>
  165.                 </span>
  166.               </dt>
  167.               <dt>
  168.                 <span class="sect2">
  169.                   <a href="gimp-using-script-fu-tutorial-lists.html">3.3. 
  170.       <span lang="en" xml:lang="en">Lists, Lists And More Lists</span>
  171.     </a>
  172.                 </span>
  173.               </dt>
  174.               <dt>
  175.                 <span class="sect2">
  176.                   <a href="gimp-using-script-fu-tutorial-first-script.html">3.4. 
  177.       <span lang="en" xml:lang="en">Your First Script-Fu Script</span>
  178.     </a>
  179.                 </span>
  180.               </dt>
  181.               <dt>
  182.                 <span class="sect2">
  183.                   <a href="gimp-using-script-fu-tutorial-script.html">3.5. 
  184.       <span lang="en" xml:lang="en">Giving Our Script Some Guts</span>
  185.     </a>
  186.                 </span>
  187.               </dt>
  188.               <dt>
  189.                 <span class="sect2">
  190.                   <a href="gimp-using-script-fu-tutorial-extending-text-box.html">3.6. 
  191.       <span lang="en" xml:lang="en">Extending The Text Box Script</span>
  192.     </a>
  193.                 </span>
  194.               </dt>
  195.               <dt>
  196.                 <span class="sect2">
  197.                   <a href="gimp-using-script-fu-tutorial-result.html">3.7. 
  198.       <span lang="en" xml:lang="en">Your script and its working</span>
  199.     </a>
  200.                 </span>
  201.               </dt>
  202.             </dl>
  203.           </dd>
  204.         </dl>
  205.       </div>
  206.       <div class="sect1" lang="en" xml:lang="en">
  207.         <div class="titlepage">
  208.           <div>
  209.             <div>
  210.               <h2 class="title" style="clear: both"><a id="gimp-concepts-plugins"></a>1.¬†
  211.     <span lang="en" xml:lang="en">Plugins</span>
  212.   </h2>
  213.             </div>
  214.           </div>
  215.         </div>
  216.         <a id="id2614730" class="indexterm"></a>
  217.         <div class="sect2" lang="en" xml:lang="en">
  218.           <div class="titlepage">
  219.             <div>
  220.               <div>
  221.                 <h3 class="title"><a id="id2614743"></a>1.1.¬†
  222.       <span lang="en" xml:lang="en">Introduction</span>
  223.     </h3>
  224.               </div>
  225.             </div>
  226.           </div>
  227.           <p>
  228.       One of the nicest things about <acronym class="acronym">GIMP</acronym> is how easily its
  229.       functionality can be extended, by using plugins.
  230.       <acronym class="acronym">GIMP</acronym> plugins are external programs that run under the
  231.       control of the main <acronym class="acronym">GIMP</acronym> application and interact
  232.       with it very closely. Plugins can manipulate images in almost any way
  233.       that users can. Their advantage is that it is much easier to add a
  234.       capability to <acronym class="acronym">GIMP</acronym> by writing a small plugin than by
  235.       modifying the huge mass of complex code that makes up the
  236.       <acronym class="acronym">GIMP</acronym> core. Many valuable plugins have C source code
  237.       that only comes to 100-200 lines or so.
  238.     </p>
  239.           <p>
  240.       Several dozen plugins are included in the main <acronym class="acronym">GIMP</acronym>
  241.       distribution, and installed automatically along with
  242.       <acronym class="acronym">GIMP</acronym>. Most of them can be accessed through the
  243.       <span class="guimenu">Filters</span> menu (in fact, everything in that menu is a
  244.       plugin), but a number are located in other menus. In many cases you can
  245.       use one without ever realizing that it is a plugin: for example, the
  246.       "Normalize" function for automatic color correction is actually a
  247.       plugin, although there is nothing about the way it works that would tell
  248.       you this.
  249.     </p>
  250.           <p>
  251.       In addition to the plugins included with GIMP , many more are available
  252.       on the net. A large number can be found at the GIMP Plugin Registry
  253.       <a class="xref" href="bibliography.html#bibliography-online-gimp-plugin-registry" title="GIMP-Plugin Registry">[<abbr class="abbrev">GIMP-REGISTRY</abbr>]</a>,
  254.       a web site whose purpose is to provide a central repository for
  255.       plugins. Creators of plugins can upload them there; users in search of
  256.       plugins for a specific purpose can search the site in a variety of ways.
  257.     </p>
  258.           <p>
  259.       Anybody in the world can write a <acronym class="acronym">GIMP</acronym> plugin and make
  260.       it available over the web, either via the Registry or a personal web
  261.       site, and many very valuable plugins can be obtained in this way ¬≠ some
  262.       are described elsewhere in the User's Manual. With this freedom from
  263.       constraint comes a certain degree of risk, though: the fact that anybody
  264.       can do it means that there is no effective quality control. The plugins
  265.       distributed with <acronym class="acronym">GIMP</acronym> have all been tested and tuned
  266.       by the developers, but many that you can download were just hacked
  267.       together in a few hours and then tossed to the winds. Some plugin
  268.       creators just don't care about robustness, and even for those who do,
  269.       their ability to test on a variety of systems in a variety of situations
  270.       is often quite limited. Basically, when you download a plugin, you are
  271.       getting something for free, and sometimes you get exactly what you pay
  272.       for. This is not said in an attempt to discourage you, just to make sure
  273.       you understand reality.
  274.     </p>
  275.           <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
  276.             <table border="0" summary="Warning">
  277.               <tr>
  278.                 <td rowspan="2" align="center" valign="top" width="25">
  279.                   <img alt="[Warning]" src="../images/warning.png" />
  280.                 </td>
  281.                 <th align="left">Warning</th>
  282.               </tr>
  283.               <tr>
  284.                 <td align="left" valign="top">
  285.                   <p>
  286.         Plugins, being full-fledged executable programs, can do any of the
  287.         things that any other program can do, including install back-doors on
  288.         your system or otherwise compromise its security. Don't install a
  289.         plugin unless it comes from a trusted source.
  290.       </p>
  291.                 </td>
  292.               </tr>
  293.             </table>
  294.           </div>
  295.           <p>
  296.       These caveats apply as much to the Plugin Registry as to any other
  297.       source of plugins. The Registry is available to any plugin creator who
  298.       wants to use it:  there is no systematic oversight. Obviously if the
  299.       maintainers became aware that something evil was there, they would
  300.       remove it. (That hasn't happened yet.)  There is, however, for
  301.       <acronym class="acronym">GIMP</acronym> and its plugins the same warranty as for any
  302.       other free software: namely, none.
  303.     </p>
  304.           <div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;">
  305.             <table border="0" summary="Caution">
  306.               <tr>
  307.                 <td rowspan="2" align="center" valign="top" width="25">
  308.                   <img alt="[Caution]" src="../images/caution.png" />
  309.                 </td>
  310.                 <th align="left">Caution</th>
  311.               </tr>
  312.               <tr>
  313.                 <td align="left" valign="top">
  314.                   <p>
  315.         Plugins have been a feature of <acronym class="acronym">GIMP</acronym> for many
  316.         versions. However, plugins written for one version of
  317.         <acronym class="acronym">GIMP</acronym> can hardly ever be used successfully with
  318.         other versions. They need to be ported: sometimes this is easy,
  319.         sometimes not. Many plugins are already available in several
  320.         versions. Bottom line: before trying to install a plugin, make sure
  321.         that it is written for your version of <acronym class="acronym">GIMP</acronym>.
  322.       </p>
  323.                 </td>
  324.               </tr>
  325.             </table>
  326.           </div>
  327.         </div>
  328.         <div class="sect2" lang="en" xml:lang="en">
  329.           <div class="titlepage">
  330.             <div>
  331.               <div>
  332.                 <h3 class="title"><a id="id2614929"></a>1.2.¬†
  333.       <span lang="en" xml:lang="en">Using Plugins</span>
  334.     </h3>
  335.               </div>
  336.             </div>
  337.           </div>
  338.           <p>
  339.       For the most part you can use a plugin like any other
  340.       <acronym class="acronym">GIMP</acronym> tool, without needing to be aware that it is a
  341.       plugin. But there are a few things about plugins that are useful to
  342.       understand.
  343.     </p>
  344.           <p>
  345.       One is that plugins are generally not as robust as the
  346.       <acronym class="acronym">GIMP</acronym> core. When <acronym class="acronym">GIMP</acronym> crashes, it
  347.       is considered a very serious thing: it can cost the user a lot of
  348.       trouble and headache. When a plugin crashes, the consequences are
  349.       usually not so serious.  In most cases you can just continuing working
  350.       without worrying about it.
  351.     </p>
  352.           <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
  353.             <table border="0" summary="Note">
  354.               <tr>
  355.                 <td rowspan="2" align="center" valign="top" width="25">
  356.                   <img alt="[Note]" src="../images/note.png" />
  357.                 </td>
  358.                 <th align="left">Note</th>
  359.               </tr>
  360.               <tr>
  361.                 <td align="left" valign="top">
  362.                   <p>
  363.         Because plugins are separate programs, they communicate with the
  364.         <acronym class="acronym">GIMP</acronym> core in a special way: The
  365.         <acronym class="acronym">GIMP</acronym> developers call it ‚Äú<span class="quote">talking over a
  366.           wire</span>‚Äù. When a plugin crashes, the communication breaks down,
  367.         and you will see an error message about a ‚Äú<span class="quote">wire read
  368.           error</span>‚Äù.
  369.       </p>
  370.                 </td>
  371.               </tr>
  372.             </table>
  373.           </div>
  374.           <div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
  375.             <table border="0" summary="Tip">
  376.               <tr>
  377.                 <td rowspan="2" align="center" valign="top" width="25">
  378.                   <img alt="[Tip]" src="../images/tip.png" />
  379.                 </td>
  380.                 <th align="left">Tip</th>
  381.               </tr>
  382.               <tr>
  383.                 <td align="left" valign="top">
  384.                   <p>
  385.         When a plugin crashes, <acronym class="acronym">GIMP</acronym> gives you a very
  386.         ominous-looking message telling you that the plugin may have left
  387.         <acronym class="acronym">GIMP</acronym> in a corrupted state, and you should consider
  388.         saving your images and exiting. Strictly speaking, this is quite
  389.         correct, because plugins have the power to alter almost anything in
  390.         <acronym class="acronym">GIMP</acronym>, but for practical purposes, experience has
  391.         shown that corruption is actually quite rare, and many users just
  392.         continue working and don't worry about it. Our advice is that you
  393.         simply think about how much trouble it would cause you if something
  394.         went wrong, and weigh it against the odds.
  395.       </p>
  396.                 </td>
  397.               </tr>
  398.             </table>
  399.           </div>
  400.           <p>
  401.       Because of the way plugins communicate with <acronym class="acronym">GIMP</acronym>,
  402.       they do not have any mechanism for being informed about changes you make
  403.       to an image after the plugin has been started. If you start a plugin,
  404.       and then alter the image using some other tool, the plugin will often
  405.       crash, and when it doesn't will usually give a bogus result. You should
  406.       avoid running more than one plugin at a time on an image, and avoid
  407.       doing anything to the image until the plugin has finished working on it.
  408.       If you ignore this advice, not only will you probably screw up the
  409.       image, you will probably screw up the undo system as well, so that you
  410.       won't even be able to recover from your foolishness.
  411.     </p>
  412.         </div>
  413.         <div class="sect2" lang="en" xml:lang="en">
  414.           <div class="titlepage">
  415.             <div>
  416.               <div>
  417.                 <h3 class="title"><a id="gimp-plugins-install"></a>1.3.¬†
  418.       <span lang="en" xml:lang="en">Installing New Plugins</span>
  419.     </h3>
  420.               </div>
  421.             </div>
  422.           </div>
  423.           <a id="id2615067" class="indexterm"></a>
  424.           <p>
  425.       The plugins that are distributed with <acronym class="acronym">GIMP</acronym> don't
  426.       require any special installation. Plugins that you download yourself do.
  427.       There are several scenarios, depending on what OS you are using and how
  428.       the plugin is structured. In Linux it is usually pretty easy to install
  429.       a new plugin; in Windows, it is either easy or very hard. In any case,
  430.       the two are best considered separately.
  431.     </p>
  432.           <div class="sect3" lang="en" xml:lang="en">
  433.             <div class="titlepage">
  434.               <div>
  435.                 <div>
  436.                   <h4 class="title"><a id="id2615096"></a>1.3.1.¬†
  437.         <span lang="en" xml:lang="en">Linux</span>
  438.       </h4>
  439.                 </div>
  440.               </div>
  441.             </div>
  442.             <p>
  443.         Most plugins fall into two categories: small ones whose source
  444.         code is distributed as a single .c file, and larger ones whose
  445.         source code is distributed as a directory containing multiple
  446.         files including a <code class="filename">Makefile</code>.
  447.       </p>
  448.             <p>
  449.         For a simple one-file plugin, call it <code class="filename">borker.c</code>,
  450.         installing it is just a matter of running the command
  451.         <span class="command"><strong>gimptool-2.0 --install borker.c</strong></span>.   This command
  452.         compiles the plugin and installs it in your personal plugin directory,
  453.         <code class="filename">~/gimp-2.4/plugins</code> unless you have changed it.
  454.         This will cause it to be loaded automatically the next time you start
  455.         <acronym class="acronym">GIMP</acronym>. You don't need to be root to do these things;
  456.         in fact, you shouldn't be. If the plugin fails to compile, well, be
  457.         creative.
  458.       </p>
  459.             <p>
  460.         Once you have installed the plugin, how do you activate it? The menu
  461.         path is determined by the plugin itself, so to answer this you need to
  462.         either look at the documentation for the plugin (if there is any), or
  463.         launch the Plugin Description dialog (from Xtns/Plugins Details)
  464.         search the plug-in by its name and look of the
  465.         <span class="guilabel">Tree view</span>
  466.         tab. If you still don't find, finally explore the menus or look at the
  467.         source code in the Register section -- whichever is easiest.
  468.       </p>
  469.             <p>
  470.         For more complex plugins, organized as a directory with multiple
  471.         files, there ought to be a file inside called either
  472.         <code class="filename">INSTALL</code> or <code class="filename">README</code>, with
  473.         instructions. If not, the best advice is to toss the plugin in the
  474.         trash and spend your time on something else:  any code written with so
  475.         little concern for the user is likely to be frustrating in myriad
  476.         ways.
  477.       </p>
  478.             <p>
  479.         Some plugins (specifically those based on the <acronym class="acronym">GIMP</acronym>
  480.         Plugin Template) are designed to be installed in the main system
  481.         <acronym class="acronym">GIMP</acronym> directory, rather than your home directory.
  482.         For these, you will need to be root to perform the final stage of
  483.         installation (when issuing the <span class="command"><strong>make install</strong></span>
  484.         command).
  485.       </p>
  486.             <p>
  487.         If you install in your personal plugin directory a plugin that has the
  488.         same name as one in the system plugin directory, only one can be
  489.         loaded, and it will be the one in your home directory. You will
  490.         receive messages telling you this each time you start
  491.         <acronym class="acronym">GIMP</acronym>. This is probably a situation best avoided.
  492.       </p>
  493.           </div>
  494.           <div class="sect3" lang="en" xml:lang="en">
  495.             <div class="titlepage">
  496.               <div>
  497.                 <div>
  498.                   <h4 class="title"><a id="id2615241"></a>1.3.2.¬†Windows</h4>
  499.                 </div>
  500.               </div>
  501.             </div>
  502.             <p>
  503.         Windows is a much more problematic environment for building software
  504.         than Linux. Every decent Linux distribution comes fully supplied with
  505.         tools for compiling software, and they are all very similar in the way
  506.         they work, but Windows does not come with such tools. It is possible
  507.         to set up a good software-building environment in Windows, but it
  508.         requires either a substantial amount of money or a substantial amount
  509.         of effort and knowledge.
  510.       </p>
  511.             <p>
  512.         What this means in relation to <acronym class="acronym">GIMP</acronym> plugins is the
  513.         following: either you have an environment in which you can build
  514.         software, or you don't. If you don't, then your best hope is to find a
  515.         precompiled version of the plugin somewhere (or persuade somebody to
  516.         compile it for you), in which case you simply need to put it into your
  517.         personal plugin directory. If you do have an environment in which you
  518.         can build software (which for present purposes means an environment in
  519.         which you can build <acronym class="acronym">GIMP</acronym>), then you no doubt
  520.         already know quite a bit about these things, and just need to follow
  521.         the Linux instructions.
  522.       </p>
  523.             <p>
  524.         If you would like to set up a build environment, and are ready for the
  525.         heroism involved, you can find a reasonably recent description of how
  526.         to go about it in the <acronym class="acronym">GIMP</acronym> Wiki, at
  527.         HowToCompileGimp/MicrosoftWindows
  528.         <a class="xref" href="bibliography.html#bibliography-online-gimp-wiki-compile-windows" title="GIMP-Wiki - How to compile for Windows">[<abbr class="abbrev">GIMP-WIKI01</abbr>]</a>.
  529.         Since it is a Wiki, anybody is free to edit it, so please keep it up
  530.         to date by adding advice based on your own experiences.
  531.       </p>
  532.           </div>
  533.           <div class="sect3" lang="en" xml:lang="en">
  534.             <div class="titlepage">
  535.               <div>
  536.                 <div>
  537.                   <h4 class="title"><a id="id2615312"></a>1.3.3.¬†
  538.         <span lang="en" xml:lang="en">Apple Mac OS X</span>
  539.       </h4>
  540.                 </div>
  541.               </div>
  542.             </div>
  543.             <p>
  544.         How you install plugins on OS X mostly depends on how you installed
  545.         GIMP itself. If you were one of the brave and installed GIMP
  546.         through one of the package managers like fink
  547.         <a class="xref" href="bibliography.html#bibliography-online-darwinports" title="Darwin Ports Package Manager for OS X">[<abbr class="abbrev">DARWINORTS</abbr>]</a> or darwinports,
  548.         <a class="xref" href="bibliography.html#bibliography-online-fink" title="Fink Package Manager for OS X">[<abbr class="abbrev">FINK</abbr>]</a> the
  549.         plugin installation works exactly the way it is described for the
  550.         Linux platform already. The only difference is, that a couple of
  551.         plugins might be even available in the repository of you package
  552.         manager, so give it a try.
  553.       </p>
  554.             <p>
  555.         If you on the other hand are one of the Users that preferred to grab a
  556.         prebuild GIMP package like GIMP.app, you most probably want to stick
  557.         to that prebuild stuff. So you can try to get a prebuild version of
  558.         the plugin of you dreams from the author of the plugin, but I'd not
  559.         want to bet on this. Building your own binaries unfortunately involves
  560.         installing GIMP through one of the package managers mentioned above.
  561.       </p>
  562.           </div>
  563.         </div>
  564.         <div class="sect2" lang="en" xml:lang="en">
  565.           <div class="titlepage">
  566.             <div>
  567.               <div>
  568.                 <h3 class="title"><a id="plugins-write"></a>1.4.¬†
  569.       <span lang="en" xml:lang="en">Writing Plugins</span>
  570.     </h3>
  571.               </div>
  572.             </div>
  573.           </div>
  574.           <a id="id2615381" class="indexterm"></a>
  575.           <p>
  576.       If you want to learn how to write a plugin, you can find plenty of help
  577.       at the <acronym class="acronym">GIMP</acronym> Developers web site
  578.       <a class="xref" href="bibliography.html#bibliography-online-gimp-dev-plugin" title="GIMP Plugin Development">[<abbr class="abbrev">GIMP-DEV-PLUGIN</abbr>]</a>.
  579.       <acronym class="acronym">GIMP</acronym> is a complex
  580.       program, but the development team has made strenuous efforts to flatten
  581.       the learning curve for plugin writing:  there are good instructions and
  582.       examples, and the main library that plugins use to interface with
  583.       <acronym class="acronym">GIMP</acronym> (called ‚Äú<span class="quote">libgimp</span>‚Äù) has a
  584.       well-documented <acronym class="acronym">API</acronym>.  Good programmers, learning by
  585.       modifying existing plugins, are often able to accomplish interesting
  586.       things after just a couple of days of work.
  587.     </p>
  588.         </div>
  589.       </div>
  590.     </div>
  591.     <div class="navfooter">
  592.       <hr />
  593.       <table width="100%" summary="Navigation footer">
  594.         <tr>
  595.           <td width="40%" align="left"><a accesskey="p" href="using-customize-splashscreen.html"><img src="../images/prev.png" alt="Prev" /></a>¬†</td>
  596.           <td width="20%" align="center">
  597.             <a accesskey="u" href="pt02.html">
  598.               <img src="../images/up.png" alt="Up" />
  599.             </a>
  600.           </td>
  601.           <td width="40%" align="right">¬†<a accesskey="n" href="gimp-concepts-script-fu.html"><img src="../images/next.png" alt="Next" /></a></td>
  602.         </tr>
  603.         <tr>
  604.           <td width="40%" align="left" valign="top"><a accesskey="p" href="using-customize-splashscreen.html">7.¬†
  605.     <span lang="en" xml:lang="en">Customize Splash-Screen</span>
  606.   </a>¬†</td>
  607.           <td width="20%" align="center">
  608.             <a accesskey="h" href="index.html">
  609.               <img src="../images/home.png" alt="Home" />
  610.             </a>
  611.           </td>
  612.           <td width="40%" align="right" valign="top">¬†<a accesskey="n" href="gimp-concepts-script-fu.html">2.¬†
  613.     <span lang="en" xml:lang="en">Using Script-Fu Scripts</span>
  614.   </a></td>
  615.         </tr>
  616.       </table>
  617.     </div>
  618.   </body>
  619. </html>
  620.